const Koa = require('koa')
const app = new Koa()
const Router = require ('koa-router')
const mongoose = require('mongoose')
const bodyParser = require('koa-bodyparser');//post函数中间件
app.use(bodyParser());
let router = new Router()

router
.get('/',async(ctx)=>{
    console.log('访问了轮播接口')
    // console.log('参数：',ctx.request.body)
    
    
    // console.log(User)
    //把从前端接收的POST数据封装成一个新的user对象
    //取得创建Model的实例
    //Model的每一个实例（instance）就是一个document，document可以保存到数据库和对数据库进行操作。简单说就是model是由schema生成的模型，可以对数据库的操作。

    // newLunbo.save(function (err, newLunbo) {
    //     if (err) return console.error(err);
    //         console.log('保存成功')
    //   });
    try{
        let Carousel = mongoose.model('Carousel');
        let carouselArr=await Carousel.find().exec();
        
        let Topic = mongoose.model('Topiclist');
        let topicArr=await Topic.find().exec();


        let Category = mongoose.model('Category');
        let categoryArr=await Category.find().exec();
        let Article = mongoose.model('Article');
        let articleArr=await Article.find().exec()

        let siteConfig = mongoose.model('Siteconfig');
        let siteConfigArr=await siteConfig.find().exec()
        categoryArr[0].my=articleArr;
        
        let obj={
            siteConfig:siteConfigArr[0],
            carousel:carouselArr,
            topic:topicArr,
            category:categoryArr,
            article:articleArr
        }
        console.log(obj.siteConfig)
        // console.log('响应成功',obj)
        // console.log('obj',Lunbo)
        ctx.body={code:200,data:obj,message:'响应成功'}
    }catch(err){
        console.log('响应失败')
        ctx.body={code:500,message:err}
    }
    
    // .then(async(result)=>{
    //     console.log('result',result)
    //     ctx.body={
    //         code:200,
    //         data:result,
    //         message:'响应成功'
    //     }
    // }).catch(eror=>{
    //     //失败返回code=500，并返回错误信息
    //     ctx.body={
    //         code:500,
    //         message:error
    //     }
    // })
    // //用mongoose的save方法直接存储，然后判断是否成功，返回相应的结果
    // await newLunbo.save().then(()=>{
    //     //成功返回code=200，并返回成功信息
    //     ctx.body={
    //         code:200,
    //         message:'注册成功'
    //     }
    // }).catch(error=>{
    //      //失败返回code=500，并返回错误信息
    //     ctx.body={
    //         code:500,
    //         message:error
    //     }
    // })
})

module.exports=router;